package com.gaohe.common;

public class BaseContext {
//    ThreadLocal 的本质是为每个线程维护一份独立的变量副本。
//    这是通过 ThreadLocalMap 来实现的，每个线程都有一个 ThreadLocalMap，ThreadLocalMap 的键是 ThreadLocal 对象，值是该 ThreadLocal 对应的变量。
//    在分布式系统中，常常需要记录每个请求的唯一标识符（如 Trace ID）来进行日志追踪。
//    ThreadLocal 可以用于在每个请求的线程中保存 Trace ID，方便日志记录。
//    在数据库操作中，ThreadLocal 可以用于存储事务对象，保证同一线程中的数据库操作使用相同的事务上下文。
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
    /**
     * 设置值
     * @param id
     */
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }
    /**
     * 获取值
     * @return
     */
    public static Long getCurrentId(){
        return threadLocal.get();
    }
}
